package com.ruoyi.wms.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 原材料主数据对象 wms_raw_material
 *
 * @author ruoyi
 * @date 2025-11-05
 */
@Data
@ToString
@ApiModel(value = "原材料主数据对象", description = "原材料主数据对象")
public class RawMaterial {
    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private String id;

    /**
     * 原材料编码
     */
    @ApiModelProperty(value = "原材料编码")
    private String materialCode;

    /**
     * 原材料名称
     */
    @ApiModelProperty(value = "原材料名称")
    private String materialName;

    /**
     * 品牌
     */
    @ApiModelProperty(value = "品牌")
    private String brand;

    /**
     * 规格/型号
     */
    @ApiModelProperty(value = "规格/型号")
    private String specification;

    /**
     * 基本单位
     */
    @ApiModelProperty(value = "基本单位")
    private String unit;

    /**
     * 分类ID
     */
    @ApiModelProperty(value = "分类ID")
    private String categoryCode;

    /**
     * 部位名称
     */
    @ApiModelProperty(value = "部位名称")
    private String partName;

    /**
     * 来源类型
     */
    @ApiModelProperty(value = "来源类型")
    private String sourceType;

    /**
     * 订单编号
     */
    @ApiModelProperty(value = "订单编号")
    private String orderNum;

    /**
     * 总数量
     */
    @ApiModelProperty(value = "总数量")
    private double totalQuantity;

    /**
     * 可用数量
     */
    @ApiModelProperty(value = "可用数量")
    private double availableQuantity;

    /**
     * 领料单占用数量
     */
    @ApiModelProperty(value = "领料单占用数量")
    private double reservedQuantity;

    /**
     * 重量(kg)
     */
    @ApiModelProperty(value = "重量(kg)")
    private double weightKg;

    /**
     * 仓库区域
     */
    @ApiModelProperty(value = "仓库区域")
    private String areaCode;

    /**
     * 最后入库人
     */
    @ApiModelProperty(value = "最后入库人")
    private String lastInboundPerson;

    /**
     * 最后入库时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "最后入库时间yyyy", example = "2020-01-01", dataType = "string")
    private Date lastInboundTime;

    /**
     * 最后出库人
     */
    @ApiModelProperty(value = "最后出库人")
    private String lastOutboundPerson;

    /**
     * 最后出库时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "最后出库时间", example = "2020-01-01", dataType = "string")
    private String lastOutboundTime;

    /**
     * 物料状态
     */
    @ApiModelProperty(value = "物料状态")
    private String materialStatus;

    /**
     * 录入人
     */
    @ApiModelProperty(value = "录入人")
    private String createUser;

    /**
     * 录入日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "录入日期yyyy-MM-dd")
    private String createDate;

    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value = "修改时间yyyy", example = "2020-01-01", dataType = "string")
    private String updateDate;

    /**
     * 数据来源
     */
    @ApiModelProperty(value = "数据来源")
    private String dataSource;

    /**
     * 二维码
     */
    @ApiModelProperty(value = "二维码")
    private String qrCode;

}
